#define  _CRT_SECURE_NO_WARNINGS
/*
#include <stdio.h>
#include <string.h>
void My_strcat(char* s1, char* s2)
{
    while (*s1 != '\0')
    {
        s1++;
    }
    while (*s2 != '\0')
    {
        *s1 = *s2;
        s1++;
        s2++;
    }
}
int main()
{
    char s1[1000], s2[1000];
    memset(s1, '\0', 1000);
    memset(s2, '\0', 1000);
    gets(s1);
    gets(s2);
    My_strcat(s1, s2);
    printf("%s\n", s1);
    return 0;
}

*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    char s[1000];
    memset(s, '\0', 1000);
    gets(s);
    int len = (int)strlen(s);
    int d1 = 0, d2 = 0, d3 = 0, d4 = 0;
    for (int i = 0; i < len; i++)
    {
        if (s[i] == ' ')
        {
            d1++;
        }
        else if (('a' <= s[i] && s[i] <= 'z') || ('A' <= s[i] && s[i] <= 'Z'))
        {
            d2++;
        }
        else if ('0' <= s[i] && s[i] <= '9')
        {
            d3++;
        }
        else
        {
            d4++;
        }
    }
    //printf("%d",len);
    printf("%d %d %d %d", d1, d2, d3, d4);
    return 0;
}